#ifndef __ICLIENT_H__
#define __ICLIENT_H__
#include <lampe/config.h>
#include <lampe/thread/IThread.h>
#include <lampe/stream/IReader.h>
#include <lampe/stream/IWriter.h>

namespace lampe{
namespace network{

class IClient: public virtual lampe::thread::IThread{
public:
	/**
	 * Метод вызываемый при подключении клиента
	 */
	virtual void onConnected()=0;

	/**
	 * Метод, вызываемый при отключении клиента
	 */
	virtual void onDisconnected()=0;
	virtual void readData()=0;
	virtual bool onStart()=0;
	virtual void onStop()=0;
	virtual void setConnect(void*data)=0;
	virtual bool isConnected()=0;
	virtual lampe::stream::IReader*getReader()=0;
	virtual lampe::stream::IWriter*getWriter()=0;
};

}//namespace network
}//namespace lampe

#endif
